This invention relates to the field of flash memory cards and to the field of interfacing systems facilitating user-friendly connectivity between host computer systems and flash memory cards. More particularly, this invention relates to the field of flash memory cards capable of detecting the operating mode of the interface apparatus or host computer system""s peripheral port to which the flash memory cards are coupled and of automatically configuring themselves to operate in the detected operating mode.
The continual penetration of computer systems into additional markets has been fueled by the emphasis on cost effective user-friendly adaptations for the computer system and on minimizing the amount of resources the user expends configuring the computer system rather than productively utilizing the computer system. Concomitant with the explosion in the popularity of computer systems has seen the proliferation of available externally attachable/detachable peripheral devices for use with the computer system to meet the application demands of the user. One such peripheral is the flash memory card.
A flash memory card is a nonvolatile memory device with a compact housing that does not require a power source in order to retain its memory contents. A typical flash memory card stores charge on a floating gate to represent a first logic state of the binary state system, while the lack of stored charge represents a second logic state of the binary state system. Additionally, the typical flash memory card is capable of performing a write operation, a read operation, and an erase operation.
Flash memory cards can provide xe2x80x9cplug and playxe2x80x9d capability, low power consumption, portability, and high density storage. Flash memory cards are well suited for digital applications such as digital camera storage, digital audio applications, and wherever rewritable, digital data storage in a portable housing is needed.
The input/output terminal of the flash memory card is configured to observe one of the prevailing industry standards. This standard requires the input/output terminal to be a fifty pin connector. The flash memory card with its fifty pin connector is designed to fit within either a fifty pin flash socket or, with the addition of a passive adapter, a sixty-eight pin PCMCIA socket. However, most host computer systems do not have either the fifty pin flash socket or the sixty-eight pin PCMCIA socket. If a user wishes to utilize the flash memory card with the host computer system, the user must purchase an expensive PCMCIA socket to connect with the host computer system.
Another deficiency in the current flash memory card market is the inability of the flash memory card to be conveniently configured for operating in the universal serial bus mode, the PCMCIA mode, the ATA IDE mode, or any other protocol for coupling peripheral devices to host computer systems and accessing the peripheral devices. There is a need for a flash memory card that automatically detects and configures itself to the operating mode being utilized by the interface apparatus or host computer system""s peripheral port to which the flash memory card is coupled.
The inventors previously proposed a flash memory card and interfacing system to address the current unavailability of automatically configurable flash memory cards. The invention relating to that flash memory card and interfacing system is disclosed in U.S. patent application Ser. No. 09/034,173, filed Mar. 2, 1998, entitled xe2x80x9cImproved Compact Flash Memory Card and Interfacexe2x80x9d, Estakhri et al., and assigned to assignee of the present invention. That application is incorporated herein by reference.
The inventors"" previous flash memory card and interfacing system is shown in FIG. 1A. The interfacing system 10 includes a flash memory card interface device 100 and a flash memory card 90 with a fifty pin connector. The flash memory card interface device 100 employs the universal serial bus architecture. The flash memory card interface device 100 includes the following components: a housing 20, a card slot 30, a cable 40, a cable connector 45, and a plug 50. The cable 40 is preferably a standard universal serial bus cable. The plug 50 is configured to easily couple with a universal serial bus port on a host computer system.
FIG. 1B illustrates a bottom cutaway view of the housing 20 in the flash memory card interface device 100. FIG. 1C illustrates a perspective cutaways view of the flash memory card interface device 100. A card receiver housing 130 is attached to the bottom plate 110. Additionally, a plurality of contact pins 160 are coupled to the card receiver housing 130, preferably, fifty contact pins. The card receiver housing 130 is configured to couple and hold the flash memory card 90 as the flash memory card 90 is inserted through the slot opening 30 in the housing 20 as shown in FIG. 1A. Further, the plurality of contact pins 160 are configured to electrically couple with the corresponding pins (not shown) on the flash memory card 90.
In operation, one end of flash memory card interface device 100 is coupled to a host computer system (not shown) via the plug 50 and the other end of the flash memory card interface device 100 is coupled to the flash memory card 90 via the card receiver housing 130, a fifty pin connection.
The inventors"" previous flash memory card 90 detected the operating mode of the interface device 100 to which the previous flash memory card was coupled and configured itself to the appropriate operating mode by using an internal controller and a sensing means coupled to the internal controller. FIG. 2 illustrates a flowchart diagram which represents the procedure the internal controller of the previous flash memory card 90 could follow in detecting the operating mode of the interface device 100 to which the previous flash memory card 90 was coupled. The fundamental mechanism utilized by the internal controller for detecting the operating mode consists solely of sensing signals at the fifty pin connector of the previous flash memory card 90. At the fifty pin connector, the internal controller does not alter or add signals, but simply senses the signals.
The operating mode detection sequence begins with the previous flash memory card 90 being coupled to the flash memory card interface device 100, which is coupled to the host computer system, then proceeding to the BLOCK 200 routine of powering up the previous flash memory card 90. After the power up sequence in BLOCK 200, the signal at the HOE_pin terminal of the previous flash memory card 90 is sensed in BLOCK 210. If the signal at the HOE_pin terminal is a logic HIGH, then proceeding to BLOCK 220 the internal controller configures the previous flash memory card 90 into the PCMCIA mode. However, if the signal at the HOE_pin terminal is logic LOW, then proceeding to BLOCK 230 the signal at the HOSTRESET_pin terminal is sensed. If the signal at the HOSTRESET_pin terminal is logic LOW, then the operating mode detection sequence returns to BLOCK 230 and senses the signal at the HOSTRESET_pin terminal again. If the signal at the HOSTRESET_pin terminal remains logic LOW, then the operating mode detection sequence continues to loop back to BLOCK 230 until the HOSTRESET_pin terminal switches to logic HIGH. If the signal at the HOSTRESET_pin terminal is logic HIGH, then proceeding to BLOCK 240 the signals at pin terminals IOW_, IOR_, HCE1_, and HCE2_are sensed. If all of these signals are logic LOW, then proceeding to BLOCK 250 the internal controller configures the previous flash memory card 90 into the universal serial bus mode. If any of these signals are logic HIGH, then proceeding to BLOCK 260 the internal controller configures the previous flash memory card 90 into the ATA IDE mode.
Unfortunately, since the previous flash memory card 90 relies solely on sensing particular signals at particular pin terminals, the previous flash memory card 90 is limited as to the number of different operating modes it is capable of detecting. In addition, reliance on sensing a few pin terminals is susceptible to detecting an incorrect operating mode because a single missensed signal could cause the previous flash memory card 90 to be configured to the incorrect operating mode.
What is needed is a flash memory card capable of detecting a large number of different operating modes. What is further needed is a flash memory card capable of accurately and automatically detecting the operating mode of the interface device or host computer system""s peripheral port to which the flash memory card is coupled and of configuring itself to the detected operating mode. What is further needed is an interfacing system which simplifies both the attachment to host computer systems and configuration of flash memory cards from the end-user perspective.
The present invention is a flash memory card interfacing system for connecting in a selected operating mode a flash memory card to a host computer system. The flash memory card interfacing system represents a low cost user friendly adaptation for coupling and configuring flash memory cards as peripheral devices to host computer systems while simplifying the end user""s involvement in this coupling and configuration process. In addition to simplifying the connection of flash memory cards to host computer systems, the flash memory card interfacing system""s key features include: significantly expanded operating mode detection capability within the flash memory card and marked reduction in the incorrect detection of operating modes.
The flash memory card interfacing system has an interface device and a flash
The flash memory card has a fifty pin connecting terminal for coupling to the computer system through the interface device. In addition, the flash memory card comprises: a flash memory module, a controller, an encoding circuitry, and a sensing circuitry.
The flash memory card is functionally ready to conduct data storage operations for the host computer system within a short period of being coupled to the computer system through the interface device. Attaining this quick operational readiness is achieved by having the flash memory card execute, immediately after initial communication with the interface device, a sequential procedure for identifying the selected operating mode of the interface device. After identifying the selected operating mode, the flash memory card automatically configures itself to the selected operating mode without receiving configuration data from an external source. Interface devices employing operating modes such as the universal serial bus mode, the PCMCIA mode, and the ATA IDE mode can functionally operate with the flash memory card. In addition, interface devices utilizing other protocols for attaching and accessing peripheral devices can also functionally operate with the flash memory card without much difficulty.
The expanded operating mode detection capability of the flash memory card, once coupled in a selected operating mode to the host computer system through the interface device, is accomplished by dedicating a plurality of signals originating from the host computer system to an encoding procedure formulated to identify an increased number of operating modes. By encoding the plurality of signals with a predetermined code and then sensing the applied predetermined code, the flash memory card can identify the selected operating mode by observing changes between the predetermined code applied to the plurality of signals and the code actually sensed from the plurality of signals. Since each operating mode is assigned a unique code, discrepancy between the predetermined code and the sensed code indicates the selected operating mode differs from the operating mode assigned to the predetermined code applied to the plurality of signals. The flash memory card applies a different predetermined code until the selected operating code is identified.